package com.example.demo.mapper.postgres;

import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface TemplateTableMapper {

    /**
     * 创建临时表
     *
     * @param tempTableName 临时表名
     */
    @Insert("CREATE TEMPORARY TABLE ${tempTableName} (id varchar) ON COMMIT DROP")
    void createTempTable(@Param("tempTableName") String tempTableName);

    /**
     * 删除临时表
     *
     * @param tempTableName 临时表名
     */
    @Delete("DROP TABLE IF EXISTS ${tempTableName}")
    void dropTempTable(@Param("tempTableName") String tempTableName);

    /**
     * 查询临时表中的所有数据
     *
     * @param tempTableName 临时表名
     * @return 临时表中的所有数据
     */
    @Select("SELECT * FROM ${tempTableName}")
    List<String> getAllDataFromTempTable(@Param("tempTableName") String tempTableName);

    /**
     * insert 往临时表写数据
     *
     * @param tempTableName
     * @param list
     */
    void insertTempIds(@Param("tempTableName") String tempTableName, @Param("list") List<String> list);
}
